const fs = require('fs-extra');
const path = require('path');

/**
 * 获取配置信息
 * @param {Object} options 命令行选项
 * @returns {Object} 配置对象
 */
function getConfig(options) {
  // 从环境变量获取配置
  const envConfig = {
    appId: process.env.LARK_APP_ID,
    appSecret: process.env.LARK_APP_SECRET,
    userAccessToken: process.env.LARK_USER_ACCESS_TOKEN
  };

  // 从命令行参数获取配置
  const cliConfig = {
    appId: options.appId,
    appSecret: options.appSecret,
    userAccessToken: options.token
  };

  // 合并配置，命令行参数优先
  const config = {
    appId: cliConfig.appId || envConfig.appId,
    appSecret: cliConfig.appSecret || envConfig.appSecret,
    userAccessToken: cliConfig.userAccessToken || envConfig.userAccessToken
  };

  // 验证必要配置
  if (!config.userAccessToken) {
    throw new Error('缺少用户访问令牌，请通过 -t 参数或 LARK_USER_ACCESS_TOKEN 环境变量提供');
  }

  return config;
}

module.exports = {
  getConfig
};